﻿using System;
using System.ComponentModel.Composition.Primitives;

namespace Shumisen.Core.Composition.Aop
{
	public class Aspect
	{
		public Aspect(IInterceptor interceptor, Predicate<Export> pointcut)
		{
			Guard.ArgumentNotNull(interceptor, "interceptor");
			Guard.ArgumentNotNull(pointcut, "pointcut");
			Interceptor = interceptor;
			Pointcut = pointcut;
		}

		public IInterceptor Interceptor { get; private set; }

		public Predicate<Export> Pointcut { get; private set; }
	}
}